// Copyright 2021-2025 Buf Technologies, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// @generated by protoc-gen-es v2.10.1 with parameter "bootstrap_wkt=true,target=ts,import_extension=js,json_types=true"
// @generated from file google/protobuf/go_features.proto (package pb, syntax proto2)
/* eslint-disable */

import type { GenEnum, GenExtension, GenFile, GenMessage } from "../../../../codegenv2/types.js";
import { fileDesc } from "../../../../codegenv2/file.js";
import type { FeatureSet } from "./descriptor_pb.js";
import { file_google_protobuf_descriptor } from "./descriptor_pb.js";
import type { Message } from "../../../../types.js";
import { messageDesc } from "../../../../codegenv2/message.js";
import { enumDesc } from "../../../../codegenv2/enum.js";
import { extDesc } from "../../../../codegenv2/extension.js";

/**
 * Describes the file google/protobuf/go_features.proto.
 */
export const file_google_protobuf_go_features: GenFile = /*@__PURE__*/
  fileDesc("CiFnb29nbGUvcHJvdG9idWYvZ29fZmVhdHVyZXMucHJvdG8SAnBiIvcECgpHb0ZlYXR1cmVzEqUBChpsZWdhY3lfdW5tYXJzaGFsX2pzb25fZW51bRgBIAEoCEKAAYgBAZgBBpgBAaIBCRIEdHJ1ZRiEB6IBChIFZmFsc2UY5weyAVsI6AcQ6AcaU1RoZSBsZWdhY3kgVW5tYXJzaGFsSlNPTiBBUEkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIGVkaXRpb24uEmoKCWFwaV9sZXZlbBgCIAEoDjIXLnBiLkdvRmVhdHVyZXMuQVBJTGV2ZWxCPogBAZgBA5gBAaIBGhIVQVBJX0xFVkVMX1VOU1BFQ0lGSUVEGIQHogEPEgpBUElfT1BBUVVFGOkHsgEDCOgHEmsKEXN0cmlwX2VudW1fcHJlZml4GAMgASgOMh4ucGIuR29GZWF0dXJlcy5TdHJpcEVudW1QcmVmaXhCMIgBAZgBBpgBB5gBAaIBGxIWU1RSSVBfRU5VTV9QUkVGSVhfS0VFUBiEB7IBAwjpByJTCghBUElMZXZlbBIZChVBUElfTEVWRUxfVU5TUEVDSUZJRUQQABIMCghBUElfT1BFThABEg4KCkFQSV9IWUJSSUQQAhIOCgpBUElfT1BBUVVFEAMikgEKD1N0cmlwRW51bVByZWZpeBIhCh1TVFJJUF9FTlVNX1BSRUZJWF9VTlNQRUNJRklFRBAAEhoKFlNUUklQX0VOVU1fUFJFRklYX0tFRVAQARIjCh9TVFJJUF9FTlVNX1BSRUZJWF9HRU5FUkFURV9CT1RIEAISGwoXU1RSSVBfRU5VTV9QUkVGSVhfU1RSSVAQAzo8CgJnbxIbLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0GOoHIAEoCzIOLnBiLkdvRmVhdHVyZXNSAmdvQi9aLWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2dvZmVhdHVyZXNwYg", [file_google_protobuf_descriptor]);

/**
 * @generated from message pb.GoFeatures
 */
export type GoFeatures = Message<"pb.GoFeatures"> & {
  /**
   * Whether or not to generate the deprecated UnmarshalJSON method for enums.
   * Can only be true for proto using the Open Struct api.
   *
   * @generated from field: optional bool legacy_unmarshal_json_enum = 1;
   */
  legacyUnmarshalJsonEnum: boolean;

  /**
   * One of OPEN, HYBRID or OPAQUE.
   *
   * @generated from field: optional pb.GoFeatures.APILevel api_level = 2;
   */
  apiLevel: GoFeatures_APILevel;

  /**
   * @generated from field: optional pb.GoFeatures.StripEnumPrefix strip_enum_prefix = 3;
   */
  stripEnumPrefix: GoFeatures_StripEnumPrefix;
};

/**
 * @generated from message pb.GoFeatures
 */
export type GoFeaturesJson = {
  /**
   * Whether or not to generate the deprecated UnmarshalJSON method for enums.
   * Can only be true for proto using the Open Struct api.
   *
   * @generated from field: optional bool legacy_unmarshal_json_enum = 1;
   */
  legacyUnmarshalJsonEnum?: boolean;

  /**
   * One of OPEN, HYBRID or OPAQUE.
   *
   * @generated from field: optional pb.GoFeatures.APILevel api_level = 2;
   */
  apiLevel?: GoFeatures_APILevelJson;

  /**
   * @generated from field: optional pb.GoFeatures.StripEnumPrefix strip_enum_prefix = 3;
   */
  stripEnumPrefix?: GoFeatures_StripEnumPrefixJson;
};

/**
 * Describes the message pb.GoFeatures.
 * Use `create(GoFeaturesSchema)` to create a new message.
 */
export const GoFeaturesSchema: GenMessage<GoFeatures, {jsonType: GoFeaturesJson}> = /*@__PURE__*/
  messageDesc(file_google_protobuf_go_features, 0);

/**
 * @generated from enum pb.GoFeatures.APILevel
 */
export enum GoFeatures_APILevel {
  /**
   * API_LEVEL_UNSPECIFIED results in selecting the OPEN API,
   * but needs to be a separate value to distinguish between
   * an explicitly set api level or a missing api level.
   *
   * @generated from enum value: API_LEVEL_UNSPECIFIED = 0;
   */
  API_LEVEL_UNSPECIFIED = 0,

  /**
   * @generated from enum value: API_OPEN = 1;
   */
  API_OPEN = 1,

  /**
   * @generated from enum value: API_HYBRID = 2;
   */
  API_HYBRID = 2,

  /**
   * @generated from enum value: API_OPAQUE = 3;
   */
  API_OPAQUE = 3,
}

/**
 * @generated from enum pb.GoFeatures.APILevel
 */
export type GoFeatures_APILevelJson = "API_LEVEL_UNSPECIFIED" | "API_OPEN" | "API_HYBRID" | "API_OPAQUE";

/**
 * Describes the enum pb.GoFeatures.APILevel.
 */
export const GoFeatures_APILevelSchema: GenEnum<GoFeatures_APILevel, GoFeatures_APILevelJson> = /*@__PURE__*/
  enumDesc(file_google_protobuf_go_features, 0, 0);

/**
 * @generated from enum pb.GoFeatures.StripEnumPrefix
 */
export enum GoFeatures_StripEnumPrefix {
  /**
   * @generated from enum value: STRIP_ENUM_PREFIX_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: STRIP_ENUM_PREFIX_KEEP = 1;
   */
  KEEP = 1,

  /**
   * @generated from enum value: STRIP_ENUM_PREFIX_GENERATE_BOTH = 2;
   */
  GENERATE_BOTH = 2,

  /**
   * @generated from enum value: STRIP_ENUM_PREFIX_STRIP = 3;
   */
  STRIP = 3,
}

/**
 * @generated from enum pb.GoFeatures.StripEnumPrefix
 */
export type GoFeatures_StripEnumPrefixJson = "STRIP_ENUM_PREFIX_UNSPECIFIED" | "STRIP_ENUM_PREFIX_KEEP" | "STRIP_ENUM_PREFIX_GENERATE_BOTH" | "STRIP_ENUM_PREFIX_STRIP";

/**
 * Describes the enum pb.GoFeatures.StripEnumPrefix.
 */
export const GoFeatures_StripEnumPrefixSchema: GenEnum<GoFeatures_StripEnumPrefix, GoFeatures_StripEnumPrefixJson> = /*@__PURE__*/
  enumDesc(file_google_protobuf_go_features, 0, 1);

/**
 * @generated from extension: optional pb.GoFeatures go = 1002;
 */
export const go: GenExtension<FeatureSet, GoFeatures> = /*@__PURE__*/
  extDesc(file_google_protobuf_go_features, 0);

